/**
 * Copyright (C) 2017 - 2020 https://github.com/joewee
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.bifrost.extension;

/**
 * @author joewee
 * @version 1.0.0
 * @Date 2017/11/16 15:47
 */
public enum ExtensionResultStatusType {
    /**
     * <p>
     * 简而言之，这个值只能从{@link ExtensionManager}s 中返回，而不应从{@link ExtensionHandler}s中返回
     * <p>
     * <p>
     *  相对于ExtensionHandler返回该结果时，ExtensionManagers返回HANDLED_CONTINUE或HANDLED_STOP的含义不那么模糊。
     *  但是，当检查调ExtensionManager的结果以查看它是否由任何ExtensionHandler处理时，则返回此枚举是有意义的
     */
    HANDLED,

    /**
     * 已经被{@link ExtensionHandler} 处理，并建议继续使用其他{@link ExtensionHandler}s处理程序（如果有更多扩展处理程序可用）。
     */
    HANDLED_CONTINUE,

    /**
     * 已经被ExtensionHandler处理过，它建议ExtensionManager不应该再调用本应执行的其他任何的ExtensionHandlers
     */
    HANDLED_STOP,

    /**
     * 表示没有被{@link ExtensionHandler}处理。
     * 在{@link ExtensionManager}的结果上下文中，
     * 这表明它没有被任何已注册的{@link ExtensionHandler}s执行，
     * 或者没有一个handler被注册到{@link ExtensionManager}
     */
    NOT_HANDLED
}
